1. Field of the Invention
The present invention relates to object-oriented programming. More particularly, this invention relates to an object-oriented notebook control object. Even more particularly, this invention relates to a platform independent object for enabling faster application development in a Java environment.
2. Related Art
Most modern computer application programs and operating system programs (hereafter collectively referred to as "Programs") employ graphical user interfaces (hereafter "GUIs") in order to simplify end user interaction. GUIs add "user-friendly" features to Programs. GUIs often use graphical symbols familiar to the end user. Some popular GUI features are icons, windows, dialogue boxes and buttons. GUI features increase end user productivity by decreasing end user learning curves and training requirements.
Modern Programs with GUIs are functionally limited in at least the following ways. Modern Programs do not provide for distributed access to centralized Programs from remote locations without using complex networking hardware and software. Also, modern Programs are not platform independent. Modern Programs do not support a client/server environment for real-time updates to applications without using platform dependent command scripts. Furthermore, modern Programs do not provide a consistent look and feel across multiple platforms. Modern Programs do not support simple centralized automatic software distribution of Program updates.
The Internet promises to facilitate improved end user interaction with distributed applications in a client-server environment. Modern World Wide Web (WWW) Internet browsers permit graphical access to remote internet homepages written in Hyper Text Markup Language (HTML). HTML homepages may invoke Java applications and embedded applets.
Java is an objected oriented programming (OOP) language. Java "classes" are typically embedded in the HTML code of an Internet homepage. Java programming language compatibility has been incorporated into many WWW browsers. Several operating systems allow native execution of Java applications when not connected to the Internet. Java compatibility enables a Java "Applet" to be embedded in a homepage. Java compatibility also allows a Java "Application" to execute as a separate application on a client computer. Java compatible browsers and native run-time environments are well known in the industry.
The fundamental mechanisms that enforce the Java OOP model are known as encapsulation, inheritance and polymorphism.
Encapsulation may be thought of as placing a wrapper around the code and data of a program. In Java the basis of encapsulation is a class. An object is a single instance of a class. A class describes general attributes of that object. A class includes a set of data attributes plus a set of allowable operations (that is, methods). The individual structure or data representation of a class is defined by a set of instance variables.
Inheritance is another feature of Java. A class (called a subclass) may be derived from another class (called a superclass) wherein the subclass inherits the data attributes and methods of the super class. The subclass may specialize the super class by adding code which overrides the data and/or methods of the super class, or which adds new data attributes and methods. Thus, inheritance represents a mechanism by which subclasses are more precisely specified. A new subclass includes all the behavior and specification of all of its ancestors. Inheritance is a major contributor to the increased programmer efficiency provided by OOP and Java. Inheritance makes it possible for developers to minimize the amount of new code they have to write to create applications. By providing a significant portion of the functionality needed for a particular task, classes in the inheritance hierarchy give the programmer a head start to program design and creation.
Polymorphism, meaning one object, many shapes, allows a method to have multiple implementations selected based on which type of object is passed into the method invocation. Methods are passed information as parameters to the method invocation. Parameters represent the input values to a function that the method must perform. The parameters are a list of "typed" values which comprise the input data to a particular message. Java requires that the types of the values be exactly matched in order for the message to be understood.
Application development classes available to the Java application developer today are functionally limited in at least the following ways. No provision is made in modern Java application development kits for a notebook control GUI object. Modern Java development kits are limited in functionality and require the Java programmer to independently write extensive program flow coordination code in order to write a program. This reduces programmer productivity by requiring burdensome duplicative effort.
Thus, what is needed is a platform independent object oriented notebook control program.